Current File : /home/jeconsul/public_html/wp-content/plugins/siteseo/main/socialmetas.php |
<?php
/*
* SITESEO
* https://siteseo.io
* (c) SiteSEO Team
*/
namespace SiteSEO;
if(!defined('ABSPATH')){
die('HACKING ATTEMPT!');
}
class SocialMetas{
static function add_social_graph(){
global $siteseo;
if(empty($siteseo->setting_enabled['toggle-social'])){
return;
}
$org_type = !empty($siteseo->social_settings['social_knowledge_type']) && $siteseo->social_settings['social_knowledge_type'] !== 'none' ? $siteseo->social_settings['social_knowledge_type'] : '';
$org_name = !empty($siteseo->social_settings['social_knowledge_name']) ? $siteseo->social_settings['social_knowledge_name'] : '';
$org_logo = !empty($siteseo->social_settings['social_knowledge_img']) ? $siteseo->social_settings['social_knowledge_img'] : '';
$org_number = !empty($siteseo->social_settings['social_knowledge_phone']) ? $siteseo->social_settings['social_knowledge_phone'] : '';
$org_contact_type = !empty($siteseo->social_settings['social_knowledge_contact_type']) ? $siteseo->social_settings['social_knowledge_contact_type'] : '';
$org_contact_option = !empty($siteseo->social_settings['social_knowledge_contact_option']) ? $siteseo->social_settings['social_knowledge_contact_option'] : '';
$fb_account = !empty($siteseo->social_settings['social_accounts_facebook']) ? $siteseo->social_settings['social_accounts_facebook'] : '';
$twitter_account = !empty($siteseo->social_settings['social_accounts_twitter']) ? $siteseo->social_settings['social_accounts_twitter'] : '';
$insta_account = !empty($siteseo->social_settings['social_accounts_instagram']) ? $siteseo->social_settings['social_accounts_instagram'] : '';
$yt_account = !empty($siteseo->social_settings['social_accounts_youtube']) ? $siteseo->social_settings['social_accounts_youtube'] : '';
$pt_account = !empty($siteseo->social_settings['social_accounts_pinterest']) ? $siteseo->social_settings['social_accounts_pinterest'] : '';
//description
$site_url = get_site_url();
$site_description = get_bloginfo('name');
//JSON-LD data
$json_ld = [
'@context' => 'https://schema.org',
'@type' => $org_type ? esc_html($org_type) : 'Organization',
'name' => esc_html($org_name),
'url' => esc_url($site_url),
'logo' => esc_url($org_logo),
'description' => esc_html($site_description),
];
//contact point
if(!empty($org_contact_option) && !empty($org_contact_type) && !empty($org_number)){
$json_ld['contactPoint'] = [
'@type' => 'ContactPoint',
'contactType' => esc_html($org_contact_type),
'telephone' => esc_html($org_number),
'contactOption' => esc_html($org_contact_option),
];
}
$same_as = array_filter([esc_url($fb_account), esc_url($twitter_account), esc_url($insta_account), esc_url($yt_account), esc_url($pt_account)]);
if(!empty($same_as)){
$json_ld['sameAs'] = $same_as;
}
// Output JSON-LD script
echo '<script type="application/ld+json">';
echo wp_json_encode($json_ld, JSON_UNESCAPED_SLASHES);
echo '</script>';
}
static function fb_graph(){
global $siteseo, $post;
if(empty($siteseo->setting_enabled['toggle-social']) || empty($siteseo->social_settings['social_facebook_og'])){
return;
}
$fb_page_id = !empty($siteseo->social_settings['social_facebook_link_ownership_id']) ? $siteseo->social_settings['social_facebook_link_ownership_id'] : '';
$fb_link_owership = !empty($siteseo->social_settings['social_facebook_admin_id']) ? $siteseo->social_settings['social_facebook_admin_id'] : '';
$og_url = get_home_url();
$og_sitename = get_bloginfo('name');
// Check
$post_id = isset($post) && is_object($post) ? $post->ID : '';
$og_title = get_the_title();
$og_description = get_bloginfo('description');
$og_img = !empty($siteseo->social_settings['social_facebook_img']) ? $siteseo->social_settings['social_facebook_img'] : '';
// Get post types and taxonomies
$post_types = siteseo_post_types();
$taxonomies = get_taxonomies(array('public' => true), 'objects');
// home site page
if(is_home() && is_front_page()){
$og_title = !empty($siteseo->titles_settings['titles_home_site_title']) ? $siteseo->titles_settings['titles_home_site_title'] : $og_title;
$og_description = !empty($siteseo->titles_settings['titles_home_site_desc']) ? $siteseo->titles_settings['titles_home_site_desc'] : $og_description;
}
// shop page woocommerces
if(function_exists('is_shop') && is_shop()){
$shop_page_id = wc_get_page_id('shop');
$og_meta_title = empty(get_post_meta($shop_page_id, '_siteseo_titles_title', true)) ? get_post_meta($shop_page_id, '_siteseo_titles_title', true) : $og_title;
$og_meta_title = esc_attr(\SiteSEO\TitlesMetas::replace_variables($og_meta_title));
$og_title = !empty(get_post_meta($shop_page_id, '_siteseo_social_fb_title', true)) ? get_post_meta($shop_page_id, '_siteseo_social_fb_title', true) : $og_meta_title;
$og_description = !empty(get_post_meta($shop_page_id, '_siteseo_social_fb_desc', true)) ? get_post_meta($shop_page_id, '_siteseo_social_fb_desc', true) : $og_description;
if(!empty(get_post_meta($shop_page_id, '_siteseo_social_fb_desc', true))){
$og_description = get_post_meta($shop_page_id, '_siteseo_social_fb_desc', true);
} elseif(!empty(get_post_meta($shop_page_id, '_siteseo_titles_desc', true))){
$og_description = get_post_meta($shop_page_id, '_siteseo_titles_desc', true);
} elseif(get_the_excerpt($shop_page_id)){
$og_description = wp_trim_words(get_the_excerpt($shop_page_id), 50);
}
$og_description = isset($og_description) ? esc_attr(\SiteSEO\TitlesMetas::replace_variables($og_description)) : '';
// OG:IMG
if(!empty(get_post_meta($shop_page_id, '_siteseo_social_fb_img', true))){
$og_img = get_post_meta($shop_page_id, '_siteseo_social_fb_img', true);
} else if(get_the_post_thumbnail_url($post, 'full')){
$og_img = get_the_post_thumbnail_url($post, 'full');
} else {
$og_img = !empty($siteseo->social_settings['social_facebook_img']) ? $siteseo->social_settings['social_facebook_img'] : '';
}
$og_url = urldecode(get_permalink($shop_page_id));
}
// single post types
foreach($post_types as $post_type){
if(is_singular($post_type->name)){
if(!empty(get_post_meta($post_id, '_siteseo_social_fb_title', true))){
$og_title = get_post_meta($post_id, '_siteseo_social_fb_title', true);
} elseif(!empty(get_post_meta($post_id, '_siteseo_titles_title', true))){
$og_title = get_post_meta($post_id, '_siteseo_titles_title', true);
} elseif(!empty($siteseo->titles_settings['titles_single_titles'][$post_type->name]['title'])){
$og_title = $siteseo->titles_settings['titles_single_titles'][$post_type->name]['title'];
} else{
$og_title = $og_title;
}
// og:description
if(!empty(get_post_meta($post_id, '_siteseo_social_fb_desc', true))){
$og_description = get_post_meta($post_id, '_siteseo_social_fb_desc', true);
} elseif(!empty(get_post_meta($post_id, '_siteseo_titles_desc', true))){
$og_description = get_post_meta($post_id, '_siteseo_titles_desc', true);
} elseif(!empty($siteseo->titles_settings['titles_single_titles'][$post_type->name]['description'])){
$og_description = $siteseo->titles_settings['titles_single_titles'][$post_type->name]['description'];
} elseif(get_the_excerpt($post_id)){
$og_description = wp_trim_words(get_the_excerpt($post_id), 50);
}
// OG:IMG
if(!empty(get_post_meta($post_id, '_siteseo_social_fb_img', true))){
$og_img = get_post_meta($post_id, '_siteseo_social_fb_img', true);
} else if(get_the_post_thumbnail_url($post, 'full')){
$og_img = get_the_post_thumbnail_url($post, 'full');
} else {
$og_img = !empty($siteseo->social_settings['social_facebook_img']) ? $siteseo->social_settings['social_facebook_img'] : '';
}
$og_url = urldecode(get_permalink($post_id));
break;
}
}
// taxonomies
foreach($taxonomies as $taxonomy){
if(is_tax($taxonomy->name) || is_category() || is_tag()){
$term = get_queried_object();
$term_id = $term->term_id;
// og:title
if(!empty(get_term_meta($term_id, '_siteseo_social_fb_title', true))){
$og_title = get_term_meta($term_id, '_siteseo_social_fb_title', true);
} elseif(!empty(get_term_meta($term_id, '_siteseo_titles_title', true))){
$og_title = get_term_meta($term_id, '_siteseo_titles_title', true);
} elseif(!empty($siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['title'])){
$og_title = $siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['title'];
} else{
$og_title = $og_title;
}
// og:description
if(!empty(get_term_meta($term_id, '_siteseo_social_fb_desc', true))){
$og_description = get_term_meta($term_id, '_siteseo_social_fb_desc', true);
} elseif(!empty(get_term_meta($term_id, '_siteseo_titles_desc', true))){
$og_description = get_term_meta($term_id, '_siteseo_titles_desc', true);
} elseif(!empty($siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['description'])){
$og_description = $siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['description'];
} else{
$og_description = wp_strip_all_tags(term_description($term_id));
}
$og_img = !empty(get_term_meta($term_id, '_siteseo_social_fb_img', true)) ? get_term_meta($term_id, '_siteseo_social_fb_img', true) : $og_img;
$og_url = urldecode(get_term_link($term_id));
break;
}
}
$og_title = isset($og_title) ? esc_attr(\SiteSEO\TitlesMetas::replace_variables($og_title)) : '';
$og_description = isset($og_description) ? esc_attr(\SiteSEO\TitlesMetas::replace_variables($og_description)) : '';
if(!empty($og_img)){
$og_img = sanitize_url($og_img);
$og_img_width = 0;
$og_img_height = 0;
if(!empty($og_img)){
$image_info = @getimagesize($og_img);
if($image_info !== false){
$og_img_width = $image_info[0];
$og_img_height = $image_info[1];
}
}
}
// Setting og:type
if(is_home() || is_front_page()){
$og_type = 'website'; // default website
} elseif(is_singular('product') || is_singular('download')){
$og_type = 'product';
} elseif(is_singular()){
$og_type = 'article';
} elseif(is_search() || is_archive() || is_404()){
$og_type = 'object';
}
if(!empty($og_url)){
echo '<meta property="og:url" content="'.esc_html($og_url).'" />';
}
if(!empty($og_sitename)){
echo '<meta property="og:site_name" content="'.esc_html($og_sitename).'" />';
}
if(function_exists('get_locale')){
echo '<meta property="og:locale" content="'.esc_html(get_locale()).'" />';
}
if(!empty($og_type)){
echo '<meta property="og:type" content="'.esc_attr($og_type).'" />';
}
if(!empty($og_title)){
echo '<meta property="og:title" content="'.esc_html($og_title).'" />';
}
if(!empty($og_description)){
echo '<meta property="og:description" content="'.esc_html($og_description).'" />';
}
if(!empty($og_img)){
echo '<meta property="og:image" content="'.esc_html($og_img).'" />';
if(is_ssl()){
echo '<meta property="og:secure_url" content="'.esc_html($og_img).'" />';
}
}
if(!empty($og_img_height)){
echo '<meta property="og:image:height" content="'.esc_attr($og_img_height).'" />';
}
if(!empty($og_img_width)){
echo '<meta property="og:image:width" content="'.esc_attr($og_img_width).'" />';
}
if(!empty($fb_page_id)){
echo '<meta property="fb:pages" content="'.esc_html($fb_page_id) .'" />';
}
if(!empty($fb_link_owership)){
echo '<meta property="fb:admins" content="'. esc_html($fb_link_owership).'" />';
}
}
static function twitter_card(){
global $siteseo, $post;
if(empty($siteseo->setting_enabled['toggle-social']) || empty($siteseo->social_settings['social_twitter_card'])){
return;
}
$site_url = get_home_url();
$sitename = get_bloginfo('name');
$post_id = isset($post) && is_object($post) ? $post->ID : '';
$site_title = get_the_title();
$site_description = get_bloginfo('description');
$twitter_img = !empty($siteseo->social_settings['social_twitter_card_img']) ? $siteseo->social_settings['social_twitter_card_img'] : '';
// home site page
if(is_home() && is_front_page()){
$site_title = !empty($siteseo->titles_settings['titles_home_site_title']) ? $siteseo->titles_settings['titles_home_site_title'] : $site_title;
$site_description = !empty($siteseo->titles_settings['titles_home_site_desc']) ? $siteseo->titles_settings['titles_home_site_desc'] : $site_description;
}
// types and taxonomies
$post_types = siteseo_post_types();
$taxonomies = get_taxonomies(array('public' => true), 'objects');
if(function_exists('is_shop') && is_shop()){
$shop_page_id = wc_get_page_id('shop');
$meta_title = !empty(get_post_meta($shop_page_id, '_siteseo_titles_title', true)) ? get_post_meta($shop_page_id, '_siteseo_titles_title', true) : $site_title;
$meta_title = esc_attr(\SiteSEO\TitlesMetas::replace_variables($meta_title));
$site_title = !empty(get_post_meta($shop_page_id, '_siteseo_social_twitter_title', true)) ? get_post_meta($shop_page_id, '_siteseo_social_twitter_title', true) : $meta_title;
// twitter:description
if(!empty(get_post_meta($shop_page_id, '_siteseo_social_twitter_desc', true))){
$site_description = get_post_meta($shop_page_id, '_siteseo_social_twitter_desc', true);
} elseif(!empty(get_post_meta($shop_page_id, '_siteseo_titles_desc', true))){
$site_description = get_post_meta($shop_page_id, '_siteseo_titles_desc', true);
} elseif(get_the_excerpt($shop_page_id)){
$site_description = wp_trim_words(get_the_excerpt(shop_page_id), 50);
}
// twitter:image
if(!empty(get_post_meta($shop_page_id, '_siteseo_social_twitter_img', true))){
$twitter_img = get_post_meta($shop_page_id, '_siteseo_social_twitter_img', true);
} else if(get_the_post_thumbnail_url($post, 'full')){
$twitter_img = get_the_post_thumbnail_url($post, 'full');
} else {
$twitter_img = isset($siteseo->social_settings['social_twitter_card_img']) ? $siteseo->social_settings['social_twitter_card_img'] : '';
}
$site_url = urldecode(get_permalink($shop_page_id));
}
// single post types
foreach($post_types as $post_type){
if(is_singular($post_type->name)){
// twitter:title
if(!empty(get_post_meta($post_id, '_siteseo_social_twitter_title', true))){
$site_title = get_post_meta($post_id, '_siteseo_social_twitter_title', true);
} elseif(!empty(get_post_meta($post_id, '_siteseo_titles_title', true))){
$site_title = get_post_meta($post_id, '_siteseo_titles_title', true);
} elseif(!empty($siteseo->titles_settings['titles_single_titles'][$post_type->name]['title'])){
$site_title = $siteseo->titles_settings['titles_single_titles'][$post_type->name]['title'];
} else{
$site_title = $site_title;
}
// twitter:description
if(!empty(get_post_meta($post_id, '_siteseo_social_twitter_desc', true))){
$site_description = get_post_meta($post_id, '_siteseo_social_twitter_desc', true);
} elseif(!empty(get_post_meta($post_id, '_siteseo_titles_desc', true))){
$site_description = get_post_meta($post_id, '_siteseo_titles_desc', true);
} elseif(!empty($siteseo->titles_settings['titles_single_titles'][$post_type->name]['description'])){
$site_description = $siteseo->titles_settings['titles_single_titles'][$post_type->name]['description'];
} else{
$site_description = wp_trim_words(get_the_excerpt($post_id), 50);
}
// twitter:image
if(!empty(get_post_meta($post_id, '_siteseo_social_twitter_img', true))){
$twitter_img = get_post_meta($post_id, '_siteseo_social_twitter_img', true);
} else if(get_the_post_thumbnail_url($post, 'full')){
$twitter_img = get_the_post_thumbnail_url($post, 'full');
} else {
$twitter_img = isset($siteseo->social_settings['social_twitter_card_img']) ? $siteseo->social_settings['social_twitter_card_img'] : '';
}
$site_url = urldecode(get_permalink($post_id));
break;
}
}
//taxonomies
foreach($taxonomies as $taxonomy){
if(is_tax($taxonomy->name) || is_category() || is_tag()){
$term = get_queried_object();
$term_id = $term->term_id;
//twitter:title
if(!empty(get_term_meta($term_id, '_siteseo_social_twitter_title', true))){
$site_title = get_term_meta($term_id, '_siteseo_social_twitter_title', true);
} elseif(!empty(get_term_meta($term_id, '_siteseo_titles_title', true))){
$site_title = get_term_meta($term_id, '_siteseo_titles_title', true);
} elseif(!empty($siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['title'])){
$site_title = $siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['title'];
} else{
$site_title = $site_title;
}
// twitter description
if(!empty(get_term_meta($term_id, '_siteseo_social_twitter_desc', true))){
$site_description = get_term_meta($term_id, '_siteseo_social_twitter_desc', true);
} elseif(!empty(get_term_meta($term_id, '_siteseo_titles_desc', true))){
$site_description = get_term_meta($term_id, '_siteseo_titles_desc', true);
} elseif(!empty($siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['description'])){
$site_description = $siteseo->titles_settings['titles_tax_titles'][$taxonomy->name]['description'];
} else{
$site_description = wp_strip_all_tags(term_description($term_id));
}
$twitter_img = !empty(get_term_meta($term_id, '_siteseo_social_twitter_img', true)) ? get_term_meta($term_id, '_siteseo_social_twitter_img', true) : $twitter_img;
$site_url = urldecode(get_term_link($term_id));
break;
}
}
$site_title = isset($site_title) ? esc_attr(\SiteSEO\TitlesMetas::replace_variables($site_title)) : '';
$site_description = isset($site_description) ? esc_attr(\SiteSEO\TitlesMetas::replace_variables($site_description)) : '';
echo '<meta name="twitter:card" content="summary"/>';
echo '<meta name="twitter:locale" content="'.esc_html(get_locale()).'"/>';
if(!empty($site_title)){
echo '<meta name="twitter:title" content="'.esc_html($site_title).'"/>';
}
if(!empty($site_description)){
echo '<meta name="twitter:description" content="'.esc_html($site_description).'"/>';
}
if(!empty($site_url)){
echo '<meta name="twitter:url" content="'.esc_html($site_url).'"/>';
}
if(!empty($sitename)){
echo '<meta name="twitter:site" content="@'.esc_html($sitename).'"/>';
}
if(!empty($twitter_img)){
echo '<meta name="twitter:image" content="'.esc_html($twitter_img).'"/>';
}
}
}